package com.alibaba.citrus.cr.sales.plan.sdo;

import com.alibaba.citrus.cr.sales.plan.model.features.SalesPlanScItemFeatures;

import lombok.Getter;
import lombok.Setter;

import java.util.List;
import java.util.Objects;

/**
 * @author yuhailin
 * @description:
 * @date 2021-09-13 19:21
 */
@Getter
@Setter
public class SalesPlanStatScItemSDO extends SalesPlanStatSDO {
    private static final long serialVersionUID = 5078099652586755420L;

    private Long id;

    private List<Long> ids;

    /**
     * 汇总类型2：货品维度3：组织维度4：类目维度
     */
    private Integer poolType;

    /**
     * 父级ID
     */
    private String parentId;

    /**
     * 1：业务员货品汇总 2：销售部门货品汇总 3：销售渠道货品汇总 4：销售组织货品汇总 5：业务单元货品汇总
     */
    private Integer bizType;

    /**
     * 数据维度ID
     */
    private String bizId;

    /**
     * 数据维度外部ID
     */
    private String bizOutId;

    /**
     * 货品ID
     */
    private String scItemId;

    /**
     * 货品编码
     */
    private String scItemCode;

    /**
     * 货品组
     */
    private String scItemGroup;

    /**
     * 到岸价
     */
    private Long costInsuranceFreight;

    /**
     * 货品类目ID
     */
    private String scItemCategoryId;

    /**
     * 计划货品
     */
    private String basicUnit;

    /**
     * 扩展字段
     */
    private SalesPlanScItemFeatures salesPlanScItemFeatures;

    /**
     * 审批状态名称
     */
    private String auditStatusName;

    /**
     * 审批状态
     */
    private Integer auditStatus;

    /**
     * 提报状态
     */
    private Integer reportStatus;

    /**
     * 提报状态名称
     */
    private String reportStatusName;

    /**
     * 提报单id
     */
    private String reportOrderId;

    /**
     * 审核状态
     */
    private Boolean isAudit;

    /**
     * 对应维度的组织类型
     */
    private Integer organizationType;

    /**
     * 可用库存字符串（查询接入库存） 默认为0
     */
    private String inventoryStr = "0";

    public String getInventoryStr() {
        return inventoryStr;
    }

    public void setInventoryStr(String inventoryStr) {
        if(Objects.nonNull(inventoryStr)) {
            this.inventoryStr = inventoryStr;
        }
    }

    /**
     * 可用库存（查询接入库存） 默认为0
     */
    private Long inventory = 0L;

    public Long getInventory() {
        return inventory;
    }

    public void setInventory(Long inventory) {
        if(Objects.nonNull(inventory)) {
            this.inventory = inventory;
        }
    }

    /**
     * crm合同量
     */
    private Long crmContractCount;

    /**
     * 出库价
     */
    private Long outboundPrice;

    /**
     * 计划量出库折前金额
     */
    private Long planOutboundMoney;

    /**
     * 任务量出库折前金额
     */
    private Long taskOutboundMoney;

    /**
     * 调整量出库折前金额
     */
    private Long adjustOutboundMoney;


}
